package jschool.ui.Estudiante;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.TitledBorder;

import jschool.manejadores.ManejadorDeIdioma;
import jschool.util.Filtrador;
import jschool.util.PintaImagen;
import jschool.util.VisualizadorImagen;

import com.toedter.calendar.JCalendar;

public class PanelEstudiante extends JPanel {

	private static final long serialVersionUID = 1L;
	private JTabbedPane tbpEmpleado = null;
	private JPanel panelIdentificacion = null;
	private JLabel lblNombre = null;
	private JPanel panelContenedor = null;
	private JTextField txtNombre = null;
	private JLabel lblApellido = null;
	private JTextField txtApellido = null;
	private JButton btnFoto = null;
	private JPanel panelImagen = null;
	private JPanel panelDireccion = null;
	private JLabel lblCalle = null;
	private JLabel lblNumero = null;
	private JLabel lblSector = null;
	private JLabel lblPoblacion = null;
	private JTextField txtCalle = null;
	private JTextField txtNumero = null;
	private JTextField txtSector = null;
	private JTextField txtPoblacion = null;
	private JPanel panelContacto = null;
	private JLabel lblTelefono = null;
	private JLabel lblEmail = null;
	private JTextField txtTelefono = null;
	private JTextField txtEmail = null;
	private JLabel lblTelCelular = null;
	private JTextField txtCelular = null;
	private JPanel panelOtros = null;
	private JComboBox cmbSexo = null;
	private JLabel lblSexo = null;
	private ButtonGroup grupoBotonesOpcion1; // @jve:decl-index=0:
	private JTextField txtFechaNacimiento = null;
	private JLabel lblNacimiento = null;
	private JButton btnCalendario = null;
	private JLabel lblNacionalidad = null;
	private JTextField txtNacionalidad = null;
	private JPanel panelEstadoCivil = null;
	private JRadioButton rbtSoltero = null;
	private JRadioButton rbtCasado = null;
	private JRadioButton rbtDivorciado = null;
	private JRadioButton rbtViudo = null;
	private Date fechaNacimiento;
	private static DateFormat formatoFecha;
	public final static int cantidadCaracteres = 2;
	private JPanel panelPersonal = null; // @jve:decl-index=0:visual-constraint="36,252"
	private JPanel panelFisicoEmpleado = null;
	private JPanel panelAptitudes = null;
	private JPanel panelEquipo = null;
	private JLabel lblFechaInscripcion = null;
	private JTextField txtFechaInscripcion = null;
	private JButton btnCalendario1 = null;
	private JLabel lblCurso = null;
	private JComboBox cmbCurso = null;
	private JLabel lblSeccion = null;
	private JComboBox cmbSeccion = null;
	private JLabel lblNombrePadre = null;
	private JLabel lblNombreMadre = null;
	private JTextField txtNombrePadre = null;
	private JTextField txtNombreMadre = null;
	private JLabel lblTelefonoPadre = null;
	private JTextField txtTelefonoPadre = null;
	private JLabel lblTelefonoMadre = null;
	private JTextField txtTelefonoMadre = null;
	private JLabel lblCedulaPadre = null;
	private JTextField txtCedulaPadre = null;
	private JLabel lblCedulaMadre = null;
	private JTextField txtCedulaMadre = null;
	private JLabel lblObservaciones = null;
	private JScrollPane jspObservaciones = null;
	private JTextArea txtObservaciones = null;
	private JButton btnAceptar = null;
	private JButton btnCancelar = null;
	private String[] pestañaNombre = null;
	private ManejadorDeIdioma manejadorDeIdioma = null;
	private ComboBoxModel cmbSexoModel = null;
	private String tituloCalendario[] = null;
	private JButton btnCambiarIdioma = null;
	private File file = null;
	private VisualizadorImagen visualizador = null;
	private PintaImagen pintaImagen = null;
	private JFileChooser fc = null;
	private String[] botonJfileChooser = null;

	public PanelEstudiante() {
		super();
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "La Clase no fue Encontrada",
					"Error", JOptionPane.ERROR_MESSAGE, null);
		} catch (InstantiationException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null,
					"Hubo un error en la instanciacion", "Error",
					JOptionPane.ERROR_MESSAGE, null);
		} catch (IllegalAccessException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Acceso Ilegal a la Clase",
					"Error", JOptionPane.ERROR_MESSAGE, null);
		} catch (UnsupportedLookAndFeelException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Estilo no Soportado", "Error",
					JOptionPane.ERROR_MESSAGE, null);
		}

		initialize();
	}

	private void initialize() {
		botonJfileChooser = new String[] { "Aceptar" };
		tituloCalendario = new String[] { "Elegir Fecha de Nacimiento: ",
				"Elegir Fecha de Inscripcion:" };
		manejadorDeIdioma = new ManejadorDeIdioma();
		pestañaNombre = new String[] { " Personal ", "Datos Escolar  " };
		cmbSexoModel = new DefaultComboBoxModel(new String[] { "Masculino",
				"Femenino" });

		this.setLayout(null);
		this.setBackground(new Color(212, 208, 200));
		this.setSize(555, 505);
		this.add(getTbpEmpleado(), null);
		this.add(getBtnAceptar(), null);
		this.add(getBtnCancelar(), null);
		this.add(getBtnCambiarIdioma(), null);
		grupoBotonesOpcion1 = new ButtonGroup();
		grupoBotonesOpcion1.add(rbtSoltero);
		grupoBotonesOpcion1.add(rbtCasado);
		grupoBotonesOpcion1.add(rbtDivorciado);
		grupoBotonesOpcion1.add(rbtViudo);
		fechaNacimiento = new Date();
		formatoFecha = DateFormat.getDateInstance();

	}

	private JTabbedPane getTbpEmpleado() {
		if (tbpEmpleado == null) {
			tbpEmpleado = new JTabbedPane();
			tbpEmpleado.setBounds(new Rectangle(7, 4, 538, 456));
			tbpEmpleado.addTab(pestañaNombre[0], null, getPanelContenedor(),
					null);
			tbpEmpleado
					.addTab(pestañaNombre[1], null, getPanelPersonal(), null);

		}
		return tbpEmpleado;
	}

	private JPanel getPanelIdentificacion() {
		if (panelIdentificacion == null) {
			lblApellido = new JLabel();
			lblApellido.setBounds(new Rectangle(9, 39, 65, 20));
			lblApellido.setText("Apellidos:");
			lblApellido.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNombre = new JLabel();
			lblNombre.setBounds(new Rectangle(9, 13, 65, 20));
			lblNombre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNombre.setText("Nombre:");
			panelIdentificacion = new JPanel();
			panelIdentificacion.setLayout(null);
			panelIdentificacion.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Identificacion",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelIdentificacion.setBounds(new Rectangle(9, 8, 339, 100));
			panelIdentificacion.add(lblNombre, null);
			panelIdentificacion.add(getTxtNombre(), null);
			panelIdentificacion.add(lblApellido, null);
			panelIdentificacion.add(getTxtApellido(), null);
		}
		return panelIdentificacion;
	}

	/**
	 * This method initializes panelContenedor
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelContenedor() {
		if (panelContenedor == null) {
			panelContenedor = new JPanel();
			panelContenedor.setLayout(null);
			panelContenedor.add(getPanelIdentificacion(), null);
			panelContenedor.add(getBtnFoto(), null);
			panelContenedor.add(getPanelImagen(), null);
			panelContenedor.add(getPanelDireccion(), null);
			panelContenedor.add(getPanelContacto(), null);
			panelContenedor.add(getPanelOtros(), null);
		}
		return panelContenedor;
	}

	/**
	 * This method initializes txtNombreñ
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtNombre() {
		if (txtNombre == null) {
			txtNombre = new JTextField();
			txtNombre.setBounds(new Rectangle(79, 13, 180, 20));
			txtNombre.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtNombre;
	}

	/**
	 * This method initializes txtApellido
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtApellido() {
		if (txtApellido == null) {
			txtApellido = new JTextField();
			txtApellido.setBounds(new Rectangle(79, 39, 180, 20));
			txtApellido.setBorder(BorderFactory
					.createLineBorder(Color.black, 1));
		}
		return txtApellido;
	}

	/**
	 * This method initializes btnFoto
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnFoto() {
		if (btnFoto == null) {
			btnFoto = new JButton();
			btnFoto.setBounds(new Rectangle(352, 8, 74, 53));
			btnFoto.setHorizontalTextPosition(JLabel.CENTER);
			btnFoto.setVerticalTextPosition(JLabel.BOTTOM);
			btnFoto.setText("Foto");
			btnFoto.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					PanelEstudiante.this.seleccionarImagen(getPanelImagen());
				}
			});
		}
		return btnFoto;
	}

	/**
	 * This method initializes panelImagen
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelImagen() {
		if (panelImagen == null) {
			panelImagen = new JPanel();
			panelImagen.setLayout(new GridBagLayout());
			panelImagen.setBounds(new Rectangle(429, 8, 98, 100));
			panelImagen.setBorder(BorderFactory
					.createLineBorder(Color.black, 1));
		}
		return panelImagen;
	}

	/**
	 * This method initializes panelDireccion
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelDireccion() {
		if (panelDireccion == null) {
			lblPoblacion = new JLabel();
			lblPoblacion.setBounds(new Rectangle(9, 79, 65, 20));
			lblPoblacion.setText("Municipio:");
			lblPoblacion.setFont(new Font("Arial", Font.PLAIN, 12));
			lblSector = new JLabel();
			lblSector.setBounds(new Rectangle(9, 57, 65, 20));
			lblSector.setText("Sector:");
			lblSector.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNumero = new JLabel();
			lblNumero.setBounds(new Rectangle(9, 35, 65, 20));
			lblNumero.setText("Numero:");
			lblNumero.setFont(new Font("Arial", Font.PLAIN, 12));
			lblCalle = new JLabel();
			lblCalle.setFont(new Font("Arial", Font.PLAIN, 12));
			lblCalle.setBounds(new Rectangle(9, 13, 65, 20));
			lblCalle.setText("Calle:");

			panelDireccion = new JPanel();
			panelDireccion.setLayout(null);
			panelDireccion.setBounds(new Rectangle(9, 113, 518, 105));
			panelDireccion.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Direccion",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelDireccion.add(lblCalle, null);
			panelDireccion.add(lblNumero, null);
			panelDireccion.add(lblSector, null);
			panelDireccion.add(lblPoblacion, null);
			panelDireccion.add(getTxtCalle(), null);
			panelDireccion.add(getTxtNumero(), null);
			panelDireccion.add(getTxtSector(), null);
			panelDireccion.add(getTxtPoblacion(), null);
		}
		return panelDireccion;
	}

	private JTextField getTxtCalle() {
		if (txtCalle == null) {
			txtCalle = new JTextField();
			txtCalle.setBounds(new Rectangle(79, 13, 433, 20));
			txtCalle.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtCalle;
	}

	private JTextField getTxtNumero() {
		if (txtNumero == null) {
			txtNumero = new JTextField();
			txtNumero.setBounds(new Rectangle(79, 35, 433, 20));
			txtNumero.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtNumero;
	}

	private JTextField getTxtSector() {
		if (txtSector == null) {
			txtSector = new JTextField();
			txtSector.setBounds(new Rectangle(79, 57, 433, 20));
			txtSector.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtSector;
	}

	private JTextField getTxtPoblacion() {
		if (txtPoblacion == null) {
			txtPoblacion = new JTextField();
			txtPoblacion.setBounds(new Rectangle(79, 79, 433, 20));
			txtPoblacion.setBorder(BorderFactory.createLineBorder(Color.black,
					1));
		}
		return txtPoblacion;
	}

	/**
	 * This method initializes panelContacto
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelContacto() {
		if (panelContacto == null) {
			lblTelCelular = new JLabel();
			lblTelCelular.setBounds(new Rectangle(270, 13, 65, 20));
			lblTelCelular.setText("Celular:");
			lblTelCelular.setFont(new Font("Arial", Font.PLAIN, 12));
			lblEmail = new JLabel();
			lblEmail.setBounds(new Rectangle(9, 35, 65, 20));
			lblEmail.setFont(new Font("Arial", Font.PLAIN, 12));
			lblEmail.setText("E-mail:");
			lblTelefono = new JLabel();
			lblTelefono.setBounds(new Rectangle(9, 13, 65, 20));
			lblTelefono.setFont(new Font("Arial", Font.PLAIN, 12));
			lblTelefono.setText("Telefono:");
			panelContacto = new JPanel();
			panelContacto.setLayout(null);
			panelContacto.setBounds(new Rectangle(9, 221, 518, 64));
			panelContacto.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Contacto",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelContacto.add(lblTelefono, null);
			panelContacto.add(lblEmail, null);
			panelContacto.add(getTxtTelefono(), null);
			panelContacto.add(getTxtEmail(), null);
			panelContacto.add(lblTelCelular, null);
			panelContacto.add(getTxtCelular(), null);
		}
		return panelContacto;
	}

	/**
	 * This method initializes txtTelefono
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtTelefono() {
		if (txtTelefono == null) {
			txtTelefono = new JTextField();
			txtTelefono.setBounds(new Rectangle(79, 13, 169, 20));
			txtTelefono.setBorder(BorderFactory
					.createLineBorder(Color.black, 1));
		}
		return txtTelefono;
	}

	/**
	 * This method initializes txtEmail
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtEmail() {
		if (txtEmail == null) {
			txtEmail = new JTextField();
			txtEmail.setBounds(new Rectangle(79, 35, 433, 20));
			txtEmail.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtEmail;
	}

	/**
	 * This method initializes txtCelular
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtCelular() {
		if (txtCelular == null) {
			txtCelular = new JTextField();
			txtCelular.setBounds(new Rectangle(330, 13, 180, 20));
			txtCelular
					.setBorder(BorderFactory.createLineBorder(Color.black, 1));
		}
		return txtCelular;
	}

	/**
	 * This method initializes panelOtros
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelOtros() {
		if (panelOtros == null) {
			lblNacionalidad = new JLabel();
			lblNacionalidad.setBounds(new Rectangle(9, 37, 65, 20));
			lblNacionalidad.setText("Origen:");
			lblNacionalidad.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNacimiento = new JLabel();
			lblNacimiento.setBounds(new Rectangle(266, 12, 71, 20));
			lblNacimiento.setText("Nacimiento:");
			lblNacimiento.setFont(new Font("Arial", Font.PLAIN, 12));
			lblSexo = new JLabel();
			lblSexo.setBounds(new Rectangle(9, 13, 65, 20));
			lblSexo.setText("Sexo:");
			lblSexo.setFont(new Font("Arial", Font.PLAIN, 12));
			panelOtros = new JPanel();
			panelOtros.setLayout(null);
			panelOtros.setBounds(new Rectangle(9, 290, 518, 116));
			panelOtros.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Otros",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelOtros.add(getCmbSexo(), null);
			panelOtros.add(lblSexo, null);
			panelOtros.add(getTxtFechaNacimiento(), null);
			panelOtros.add(lblNacimiento, null);
			panelOtros.add(getBtnCalendario(), null);
			panelOtros.add(lblNacionalidad, null);
			panelOtros.add(getTxtNacionalidad(), null);
			panelOtros.add(getPanelEstadoCivil(), null);
		}
		return panelOtros;
	}

	/**
	 * This method initializes cmbSexo
	 * 
	 * @return javax.swing.JComboBox
	 */
	private JComboBox getCmbSexo() {
		if (cmbSexo == null) {
			cmbSexo = new JComboBox();
			cmbSexo.setBounds(new Rectangle(79, 13, 169, 20));

			cmbSexo.setModel(cmbSexoModel);

		}
		return cmbSexo;
	}

	/**
	 * This method initializes txtFechaNacimiento
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtFechaNacimiento() {
		if (txtFechaNacimiento == null) {
			txtFechaNacimiento = new JTextField();
			txtFechaNacimiento.setBounds(new Rectangle(342, 12, 145, 20));
			txtFechaNacimiento.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
			txtFechaNacimiento.setEditable(false);
		}
		return txtFechaNacimiento;
	}

	/**
	 * This method initializes btnCalendario
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnCalendario() {
		if (btnCalendario == null) {
			btnCalendario = new JButton();
			btnCalendario.setBounds(new Rectangle(488, 12, 23, 20));
			btnCalendario
					.setIcon(new ImageIcon("./lib/images/CalendarIco.gif"));
			btnCalendario
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							Date fecha = seleccionarFechaNacimiento();
							fechaNacimiento = fecha;
							txtFechaNacimiento.setText(String
									.valueOf(formatoFecha
											.format(fechaNacimiento)));
						}
					});
		}
		return btnCalendario;
	}

	/**
	 * This method initializes txtNacionalidad
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtNacionalidad() {
		if (txtNacionalidad == null) {
			txtNacionalidad = new JTextField();
			txtNacionalidad.setBounds(new Rectangle(80, 37, 430, 20));
			txtNacionalidad.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtNacionalidad;
	}

	private Date seleccionarFechaNacimiento() {
		JCalendar calendar = new JCalendar();
		JDialog dialogo = new JDialog();
		dialogo.setTitle(tituloCalendario[0]);
		dialogo.setModal(true);
		dialogo.setContentPane(calendar);
		dialogo.setSize(210, 169);
		dialogo.setVisible(true);
		return calendar.getDate();

	}

	private Date seleccionarFechaInscripcion() {
		JCalendar calendar = new JCalendar();
		JDialog dialogo = new JDialog();
		dialogo.setTitle(tituloCalendario[1]);
		dialogo.setModal(true);
		dialogo.setContentPane(calendar);
		dialogo.setSize(210, 169);
		dialogo.setVisible(true);
		return calendar.getDate();

	}

	/**
	 * This method initializes panelEstadoCivil
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelEstadoCivil() {
		if (panelEstadoCivil == null) {
			panelEstadoCivil = new JPanel();
			panelEstadoCivil.setLayout(null);
			panelEstadoCivil.setBounds(new Rectangle(9, 65, 179, 44));
			panelEstadoCivil.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Estado Civil",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelEstadoCivil.add(getRbtSoltero(), null);
			panelEstadoCivil.add(getRbtCasado(), null);
			panelEstadoCivil.add(getRbtDivorciado(), null);
			panelEstadoCivil.add(getRbtViudo(), null);
		}
		return panelEstadoCivil;
	}

	/**
	 * This method initializes rbtSoltero
	 * 
	 * @return javax.swing.JRadioButton
	 */
	private JRadioButton getRbtSoltero() {
		if (rbtSoltero == null) {
			rbtSoltero = new JRadioButton();
			rbtSoltero.setBounds(new Rectangle(6, 13, 70, 13));
			rbtSoltero.setText("Soltero");
			rbtSoltero.setFont(new Font("Arial", Font.PLAIN, 12));
		}
		return rbtSoltero;
	}

	/**
	 * This method initializes rbtCasado
	 * 
	 * @return javax.swing.JRadioButton
	 */
	private JRadioButton getRbtCasado() {
		if (rbtCasado == null) {
			rbtCasado = new JRadioButton();
			rbtCasado.setBounds(new Rectangle(6, 26, 75, 13));
			rbtCasado.setText("Casado");
			rbtCasado.setFont(new Font("Arial", Font.PLAIN, 12));
		}
		return rbtCasado;
	}

	/**
	 * This method initializes rbtDivorciado
	 * 
	 * @return javax.swing.JRadioButton
	 */
	private JRadioButton getRbtDivorciado() {
		if (rbtDivorciado == null) {
			rbtDivorciado = new JRadioButton();
			rbtDivorciado.setBounds(new Rectangle(89, 13, 83, 13));
			rbtDivorciado.setText("Divorciado");
			rbtDivorciado.setFont(new Font("Arial", Font.PLAIN, 12));
		}
		return rbtDivorciado;
	}

	/**
	 * This method initializes rbtViudo
	 * 
	 * @return javax.swing.JRadioButton
	 */
	private JRadioButton getRbtViudo() {
		if (rbtViudo == null) {
			rbtViudo = new JRadioButton();
			rbtViudo.setBounds(new Rectangle(89, 26, 75, 13));
			rbtViudo.setText("Viudo");
			rbtViudo.setFont(new Font("Arial", Font.PLAIN, 12));
		}
		return rbtViudo;
	}

	/**
	 * This method initializes cmbContrato
	 * 
	 * @return javax.swing.JComboBox
	 */

	/**
	 * This method initializes panelPersonal
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelPersonal() {
		if (panelPersonal == null) {
			panelPersonal = new JPanel();
			panelPersonal.setLayout(null);
			panelPersonal.setSize(new Dimension(253, 232));
			panelPersonal.add(getPanelFisicoEmpleado(), null);
			panelPersonal.add(getPanelAptitudes(), null);
			panelPersonal.add(getPanelEquipo(), null);
		}
		return panelPersonal;
	}

	/**
	 * This method initializes panelFisicoEmpleado
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelFisicoEmpleado() {
		if (panelFisicoEmpleado == null) {
			lblSeccion = new JLabel();
			lblSeccion.setBounds(new Rectangle(9, 61, 65, 20));
			lblSeccion.setText("Seccion:");
			lblSeccion.setFont(new Font("Arial", Font.PLAIN, 12));
			lblCurso = new JLabel();
			lblCurso.setBounds(new Rectangle(9, 37, 46, 20));
			lblCurso.setText("Curso:");
			lblCurso.setFont(new Font("Arial", Font.PLAIN, 12));
			lblFechaInscripcion = new JLabel();
			lblFechaInscripcion.setBounds(new Rectangle(9, 13, 126, 20));
			lblFechaInscripcion.setText("Fecha de Inscripcion :");
			lblFechaInscripcion.setFont(new Font("Arial", Font.PLAIN, 12));
			panelFisicoEmpleado = new JPanel();
			panelFisicoEmpleado.setLayout(null);
			panelFisicoEmpleado.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Datos de Inscripcion",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelFisicoEmpleado.setBounds(new Rectangle(9, 8, 518, 96));
			panelFisicoEmpleado.add(lblFechaInscripcion, null);
			panelFisicoEmpleado.add(getTxtFechaInscripcion(), null);
			panelFisicoEmpleado.add(getBtnCalendario1(), null);
			panelFisicoEmpleado.add(lblCurso, null);
			panelFisicoEmpleado.add(getCmbCurso(), null);
			panelFisicoEmpleado.add(lblSeccion, null);
			panelFisicoEmpleado.add(getCmbSeccion(), null);
		}
		return panelFisicoEmpleado;
	}

	/**
	 * This method initializes panelAptitudes
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelAptitudes() {
		if (panelAptitudes == null) {
			lblCedulaMadre = new JLabel();
			lblCedulaMadre.setBounds(new Rectangle(260, 86, 96, 20));
			lblCedulaMadre.setText("Cedula Madre:");
			lblCedulaMadre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblCedulaPadre = new JLabel();
			lblCedulaPadre.setBounds(new Rectangle(9, 85, 87, 21));
			lblCedulaPadre.setText("Cedula Padre:");
			lblCedulaPadre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblTelefonoMadre = new JLabel();
			lblTelefonoMadre.setBounds(new Rectangle(260, 61, 90, 21));
			lblTelefonoMadre.setText("Tel. Madre:");
			lblTelefonoMadre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblTelefonoPadre = new JLabel();
			lblTelefonoPadre.setBounds(new Rectangle(9, 61, 67, 21));
			lblTelefonoPadre.setText("Tel. Padre:");
			lblTelefonoPadre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNombreMadre = new JLabel();
			lblNombreMadre.setBounds(new Rectangle(9, 37, 125, 20));
			lblNombreMadre.setText("Nombre de la Madre:");
			lblNombreMadre.setFont(new Font("Arial", Font.PLAIN, 12));
			lblNombrePadre = new JLabel();
			lblNombrePadre.setBounds(new Rectangle(9, 13, 126, 20));
			lblNombrePadre.setText("Nombre del Padre:");
			lblNombrePadre.setFont(new Font("Arial", Font.PLAIN, 12));
			panelAptitudes = new JPanel();
			panelAptitudes.setLayout(null);
			panelAptitudes.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Familiares",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelAptitudes.setBounds(new Rectangle(9, 109, 518, 119));
			panelAptitudes.add(lblNombrePadre, null);
			panelAptitudes.add(lblNombreMadre, null);
			panelAptitudes.add(getTxtNombrePadre(), null);
			panelAptitudes.add(getTxtNombreMadre(), null);
			panelAptitudes.add(lblTelefonoPadre, null);
			panelAptitudes.add(getTxtTelefonoPadre(), null);
			panelAptitudes.add(lblTelefonoMadre, null);
			panelAptitudes.add(getTxtTelefonoMadre(), null);
			panelAptitudes.add(lblCedulaPadre, null);
			panelAptitudes.add(getTxtCedulaPadre(), null);
			panelAptitudes.add(lblCedulaMadre, null);
			panelAptitudes.add(getTxtCedulaMadre(), null);
		}
		return panelAptitudes;
	}

	/**
	 * This method initializes panelEquipo
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getPanelEquipo() {
		if (panelEquipo == null) {
			lblObservaciones = new JLabel();
			lblObservaciones.setBounds(new Rectangle(9, 13, 96, 20));
			lblObservaciones.setText("Observaciones:");
			lblObservaciones.setFont(new Font("Arial", Font.PLAIN, 12));
			panelEquipo = new JPanel();
			panelEquipo.setLayout(null);
			panelEquipo.setBounds(new Rectangle(9, 234, 518, 184));
			panelEquipo.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
							.createTitledBorder(null, "Otros",
									TitledBorder.LEFT,
									TitledBorder.DEFAULT_POSITION, new Font(
											"Courier New", Font.PLAIN, 12),
									new Color(51, 51, 51))));
			panelEquipo.add(lblObservaciones, null);
			panelEquipo.add(getJspObservaciones(), null);
		}
		return panelEquipo;
	}

	/**
	 * This method initializes txtFechaInscripcion
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtFechaInscripcion() {
		if (txtFechaInscripcion == null) {
			txtFechaInscripcion = new JTextField();
			txtFechaInscripcion.setBounds(new Rectangle(138, 13, 188, 20));
			txtFechaInscripcion.setEditable(false);
			txtFechaInscripcion.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtFechaInscripcion;
	}

	/**
	 * This method initializes btnCalendario1
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnCalendario1() {
		if (btnCalendario1 == null) {
			btnCalendario1 = new JButton();
			btnCalendario1.setBounds(new Rectangle(328, 13, 23, 20));
			btnCalendario1
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							Date fecha = seleccionarFechaInscripcion();
							fechaNacimiento = fecha;
							txtFechaInscripcion.setText(String
									.valueOf(formatoFecha
											.format(fechaNacimiento)));
						}
					});
		}
		return btnCalendario1;
	}

	/**
	 * This method initializes cmbCurso
	 * 
	 * @return javax.swing.JComboBox
	 */
	private JComboBox getCmbCurso() {
		if (cmbCurso == null) {
			cmbCurso = new JComboBox();
			cmbCurso.setBounds(new Rectangle(138, 37, 117, 20));
		}
		return cmbCurso;
	}

	/**
	 * This method initializes cmbSeccion
	 * 
	 * @return javax.swing.JComboBox
	 */
	private JComboBox getCmbSeccion() {
		if (cmbSeccion == null) {
			cmbSeccion = new JComboBox();
			cmbSeccion.setBounds(new Rectangle(138, 61, 117, 20));
		}
		return cmbSeccion;
	}

	/**
	 * This method initializes txtNombrePadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtNombrePadre() {
		if (txtNombrePadre == null) {
			txtNombrePadre = new JTextField();
			txtNombrePadre.setBounds(new Rectangle(138, 13, 373, 20));
			txtNombrePadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtNombrePadre;
	}

	/**
	 * This method initializes txtNombreMadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtNombreMadre() {
		if (txtNombreMadre == null) {
			txtNombreMadre = new JTextField();
			txtNombreMadre.setBounds(new Rectangle(138, 37, 373, 20));
			txtNombreMadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtNombreMadre;
	}

	/**
	 * This method initializes txtTelefonoPadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtTelefonoPadre() {
		if (txtTelefonoPadre == null) {
			txtTelefonoPadre = new JTextField();
			txtTelefonoPadre.setBounds(new Rectangle(79, 61, 171, 21));
			txtTelefonoPadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtTelefonoPadre;
	}

	/**
	 * This method initializes txtTelefonoMadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtTelefonoMadre() {
		if (txtTelefonoMadre == null) {
			txtTelefonoMadre = new JTextField();
			txtTelefonoMadre.setBounds(new Rectangle(360, 61, 150, 21));
			txtTelefonoMadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtTelefonoMadre;
	}

	/**
	 * This method initializes txtCedulaPadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtCedulaPadre() {
		if (txtCedulaPadre == null) {
			txtCedulaPadre = new JTextField();
			txtCedulaPadre.setBounds(new Rectangle(99, 85, 151, 21));
			txtCedulaPadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtCedulaPadre;
	}

	/**
	 * This method initializes txtCedulaMadre
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getTxtCedulaMadre() {
		if (txtCedulaMadre == null) {
			txtCedulaMadre = new JTextField();
			txtCedulaMadre.setBounds(new Rectangle(359, 85, 151, 21));
			txtCedulaMadre.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return txtCedulaMadre;
	}

	/**
	 * This method initializes jspObservaciones
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getJspObservaciones() {
		if (jspObservaciones == null) {
			jspObservaciones = new JScrollPane();
			jspObservaciones.setBounds(new Rectangle(110, 14, 401, 153));
			jspObservaciones.setViewportView(getTxtObservaciones());
			jspObservaciones.setBorder(BorderFactory.createLineBorder(
					Color.black, 1));
		}
		return jspObservaciones;
	}

	/**
	 * This method initializes txtObservaciones
	 * 
	 * @return javax.swing.JTextArea
	 */
	private JTextArea getTxtObservaciones() {
		if (txtObservaciones == null) {
			txtObservaciones = new JTextArea();
			txtObservaciones.setLineWrap(true);
			txtObservaciones.setWrapStyleWord(true);
		}
		return txtObservaciones;
	}

	/**
	 * This method initializes btnAceptar
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnAceptar() {
		if (btnAceptar == null) {
			btnAceptar = new JButton();
			btnAceptar.setBounds(new Rectangle(330, 466, 103, 28));
			btnAceptar.setText("Aceptar");
		}
		return btnAceptar;
	}

	/**
	 * This method initializes btnCancelar
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getBtnCancelar() {
		if (btnCancelar == null) {
			btnCancelar = new JButton();
			btnCancelar.setBounds(new Rectangle(442, 466, 103, 28));
			btnCancelar.setText("Cancelar");
		}
		return btnCancelar;
	}

	public void asignarTexto(String idioma, String locale) {
		pestañaNombre = new String[] {
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"Pestanas_Nombre_0"),
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"Pestanas_Nombre_1") };
		tbpEmpleado.addTab(pestañaNombre[0], null, getPanelContenedor(), null);
		tbpEmpleado.addTab(pestañaNombre[1], null, getPanelPersonal(), null);

		panelIdentificacion.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString("Identificacion_0"),
								TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));

		lblNombre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Nombre"));
		lblApellido.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Apellido"));
		panelDireccion.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString("Direccion"),
								TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));
		lblCalle.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Calle"));
		lblNumero.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Numero"));

		lblSector.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Sector"));
		lblPoblacion.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Municipio"));

		panelContacto.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString("Contacto"),
								TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));
		lblTelefono.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Telefono"));
		lblTelCelular.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Celular"));
		lblEmail.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Email"));
		panelOtros.setBorder(BorderFactory.createCompoundBorder(BorderFactory
				.createEmptyBorder(0, 0, 0, 0), BorderFactory
				.createTitledBorder(null, manejadorDeIdioma.getBundle(idioma,
						locale).getString("Otros"), TitledBorder.LEFT,
						TitledBorder.DEFAULT_POSITION, new Font("Courier New",
								Font.PLAIN, 12), new Color(51, 51, 51))));

		lblSexo.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Sexo"));
		lblNacimiento.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Nacimiento"));
		lblNacionalidad.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Origen"));

		cmbSexoModel = new DefaultComboBoxModel(new String[] {
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"Maculino"),
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"Femenino") });

		panelEstadoCivil.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString("Estado_Civil"),
								TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));
		tituloCalendario = new String[] {
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"tituloCalendario_0"),
				manejadorDeIdioma.getBundle(idioma, locale).getString(
						"tituloCalendario_1"),

		};
		rbtSoltero.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Soltero"));
		rbtCasado.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Casado"));
		rbtViudo.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Viudo"));
		rbtDivorciado.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Divorciado"));
		btnFoto.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Fotos"));

		panelFisicoEmpleado.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString(
								"Datos_De_Inscripcion"), TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));

		lblFechaInscripcion.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Fecha_De_Inscripcion"));
		lblCurso.setText(manejadorDeIdioma.getBundle(idioma, locale).getString(
				"Curso"));
		lblSeccion.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Seccion"));

		panelAptitudes.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(0, 0, 0, 0), BorderFactory
						.createTitledBorder(null, manejadorDeIdioma.getBundle(
								idioma, locale).getString("Familiares"),
								TitledBorder.LEFT,
								TitledBorder.DEFAULT_POSITION, new Font(
										"Courier New", Font.PLAIN, 12),
								new Color(51, 51, 51))));

		lblNombrePadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Nombre_del_Padre"));

		lblNombreMadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Nombre_de_la_Madre"));

		lblTelefonoPadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Tel_Padre"));

		lblTelefonoMadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Tel_Madre"));

		lblCedulaPadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Cedula_Padre"));

		lblCedulaMadre.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Cedula_Madre"));

		panelEquipo.setBorder(BorderFactory.createCompoundBorder(BorderFactory
				.createEmptyBorder(0, 0, 0, 0), BorderFactory
				.createTitledBorder(null, manejadorDeIdioma.getBundle(idioma,
						locale).getString("Otros"), TitledBorder.LEFT,
						TitledBorder.DEFAULT_POSITION, new Font("Courier New",
								Font.PLAIN, 12), new Color(51, 51, 51))));

		lblObservaciones.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Observaciones"));

		btnAceptar.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Aceptar"));
		btnCancelar.setText(manejadorDeIdioma.getBundle(idioma, locale)
				.getString("Cancelar"));

		botonJfileChooser = new String[] { manejadorDeIdioma.getBundle(idioma,
				locale).getString("Aceptar") };

	}

	public void cambiarIdioma(String idioma, String locale) {
		PanelEstudiante.this.asignarTexto(idioma, locale);
	}

	private JButton getBtnCambiarIdioma() {
		if (btnCambiarIdioma == null) {
			btnCambiarIdioma = new JButton("Idioma");
			btnCambiarIdioma.setBounds(new Rectangle(230, 466, 103, 28));
			btnCambiarIdioma
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							String idioma = "en";
							String locale = "US";
							cambiarIdioma(idioma, locale);

						}
					});
		}
		return btnCambiarIdioma;
	}

	public void seleccionarImagen(JPanel panel) {
		try {
			Filtrador filtro = new Filtrador();
			fc = new JFileChooser();
			fc.setAccessory(new VisualizadorImagen(fc));
			fc.addChoosableFileFilter(filtro);
			int returnVal = fc.showDialog(PanelEstudiante.this,
					botonJfileChooser[0]);
			if (returnVal == JFileChooser.APPROVE_OPTION) {
				file = fc.getSelectedFile();
				BufferedImage image;

				image = ImageIO.read(file);

				pintaImagen = new PintaImagen(image, panel);
				pintaImagen.cargarImagen(panel, file);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
} // @jve:decl-index=0:visual-constraint="350,177"
